Unanticipated Partial Behavioral Reflection
نویسندگان
چکیده
Dynamic, unanticipated adaptation of running systems is of interest in a variety of situations, ranging from functional upgrades to onthe-fly debugging or monitoring of critical applications. In this paper we study a particular form of computational reflection, called unanticipated partial behavioral reflection, which is particularly well-suited for unanticipated adaptation of real-world systems. Our proposal combines the dynamicity of unanticipated reflection, i.e., reflection that does not require preparation of the code of any sort, and the selectivity and efficiency of partial behavioral reflection. First, we propose unanticipated partial behavioral reflection which enables the developer to precisely select the required reifications, to flexibly engineer the metalevel and to introduce the meta behavior dynamically. Second, we present a system supporting unanticipated partial behavioral reflection in Squeak Smalltalk, called Geppetto, and illustrate its use with a concrete example of a Seaside web application. Benchmarks validate the applicability of our proposal as an extension to the standard reflective abilities of Smalltalk.
منابع مشابه
Unanticipated partial behavioral reflection: Adapting applications at runtime
Dynamic, unanticipated adaptation of running systems is of interest in a variety of situations, ranging from functional upgrades to on-the-fly debugging or monitoring of critical applications. In this paper we study a particular form of computational reflection, called unanticipated partial behavioral reflection, which is particularly well-suited for unanticipated adaptation of real-world syste...
متن کاملGeppetto: Enhancing Smalltalk’s Reflective Capabilities with Unanticipated Reflection
Reflection is an important tool to extend and modify the semantics or runtime of applications. However, lot of approaches to support reflection are based on up-front fully reflective or load-time based reflection mechanisms. Using these approaches, it is not possible to apply reflective techniques on running systems without stopping them, unless the system is fully reflection which is very cost...
متن کاملSub-method structural and behavioral reflection
Computational reflection is a fundamental mechanism in object oriented languages. Reflection has proved useful in many contexts, such as in the design of development environments, language extension, and the dynamic, unanticipated adaptation of running systems. We identify three problems with the current approach to reflection in object oriented languages: partial behavioral reflection needs to...
متن کاملRun-Time Evolution through Explicit Meta-Objects
Software must be constantly adapted due to evolving domain knowledge and unanticipated requirements changes. To adapt a system at run-time we need to reflect on its structure and its behavior. Objectoriented languages introduced reflection to deal with this issue, however, no reflective approach up to now has tried to provide a unified solution to both structural and behavioral reflection. This...
متن کاملA Flexible Approach to Interactive Runtime Inspection
Behavioral reflection is well-known approach enabling exhaustive querying of program state (introspection) as well as controlling its execution (intercession). It is hence an adequate foundation for runtime inspection. Partial behavioral reflection aims at making behavioral reflection more applicable by providing high levels of selectivity and configurability. We first outline the main features...
متن کامل